package com.yungu.swift.system.marketing.model.dto;

import com.yungu.swift.base.model.BaseDto;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 优惠券设置表
 **/
@Data
public class MarketingCouponDto extends BaseDto implements Cloneable {

    /**
     * 优惠券编号（自动生成）
     **/
    private String no;
    /**
     * 优惠券名称
     **/
    private String name;

    /**
     * 类型 1.满减 2折扣
     **/
    private Integer type;
    /**
     * 金额
     **/
    private Double money;
    /**
     * 状态 1：正常，2：失效
     **/
    private Integer status;
    /**
     * 使用说明
     */
    private String instruction;
    /**
     * 条件金额
     **/
    private Double astrict;
    /**
     * 总数量
     **/
    private Integer totalNumber;
    /**
     * 领取数量
     **/
    private Integer grantNumber;
    /**
     * 剩余数量
     **/
    private Integer remainNumber;
    /**
     * 已使用数量
     **/
    private Integer usedNumber;
    /**
     * 发放方式 (1代表系统发放，2代表手动发放，3代表随活动发放，4注册发放)
     **/
    private Integer sendMode;
    /**
     * 获得方式 (0代表限领一张，1代表每天限领一张，2代表不限张数)
     **/
    private Integer getMode;
    /**
     * 使用方式 (0代表可以叠加，1代表不可以叠加)
     **/
    private Integer useMode;
    /**
     * 最低用户级别 [保留，暂不使用]
     **/
    private Integer userRankLower;
    /**
     * 发放开始时间
     **/
    private Date sendStartTime;
    /**
     * 发放结束时间
     **/
    private Date sendEndTime;
    /**
     * 使用开始时间
     **/
    private Date useStartTime;
    /**
     * 使用结束时间
     **/
    private Date useEndTime;
    /**
     * 天单位
     **/
    private Integer useExpireTime;
    /**
     * 折扣
     **/
    private Double discount;
    /**
     * 指定对象（目前为用户手机号码）
     **/
    private String userMobiles;
    /**
     * 业务范围
     **/
    private Integer useBusinessType;
    /**
     * 最高抵扣金额
     **/
    private Double highestMoney;
    /**
     * 过期时间类型
     **/
    private Integer termType;
    /**
     * 优惠券模板uuid
     **/
    private String couponTemplateUuid;
    /**
     * 礼包uuid
     **/
    private String giftUuid;
    /**
     * 使用城市
     **/
    private String cityUuids;
    /**
     * 使用城市名称
     **/
    private String cityNames;
    /**
     * 优惠券子类型 1,乘客邀请乘客邀请者 2,乘客邀请乘客被邀请者
     */
    private Integer subType;

    //附加字段
    /**
     * 已使用总金额
     **/
    private Double usedMoney;
    /**
     * 是否过期
     **/
    private Integer expired;
    /**
     * 发送量
     **/
    private Integer sendCount;
    /**
     * 已经抵扣金额
     **/
    private BigDecimal amountDeducted;
    /**
     * 已使用数
     **/
    private Integer usedCount;

    @Override
    public Object clone() {
        com.yungu.swift.system.marketing.model.dto.MarketingCouponDto marketingCouponDto = null;
        try {
            marketingCouponDto = (com.yungu.swift.system.marketing.model.dto.MarketingCouponDto) super.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return marketingCouponDto;
    }
}
